#include<iostream>
#include<map>
#include<string>
#include<ctime>

template <typename T>
void Print(const T &v)
{
    for (auto ite = v.begin(); ite != v.end(); ite++)
    {
        std::cout << ite->first << " "<<ite->second<<std::endl;
    }
    std::cout<<std::endl;
}

int main()
{
    
    // auto p=std::make_pair(1,std::string("zhangshan"));
    // //std::cout<<p.first<<" "<<p.second<<std::endl;

    // //map容器的键值唯一
    // std::map<int,std::string> m;
    // m.insert({1,"zhangshan"});
    // m.insert(std::make_pair(2,"lisi"));
    // m.insert(std::pair<int,std::string>(3,"wangwu"));
    // //存在就修改，不存在就新建
    // m[4]="zhaoliu";
    // //Print(m);
    // auto ite=m.find(2);
    // if(ite==m.end())
    // {
    //     std::cout<<"没找到"<<std::endl;
    // }
    // else{
    //     std::cout<<ite->second<<std::endl;
    // }
    // //m.erase(2);
    // //取节点
    // auto node=m.extract(1);
    // m.insert(std::move(node));
    // Print(m);
    srand(time(nullptr));
    int a[100];
    for(int i=0;i<100;i++)
    {
        a[i]=rand()%10+1;
        //std::cout<<a[i]<<" ";
    }
    std::cout<<std::endl;
    //求出出现次数最多的数，输出他的值和下标
    std::map<int,int> m;
    for(int i=0;i<100;i++)
    {
        m[a[i]]++;
    }
    auto maxite=m.begin();
    for(auto ite=m.begin();ite!=m.end();ite++)
    {
        if(ite->second>maxite->second)
        {
            maxite=ite;
        }
    }
    std::cout<<maxite->first<<" "<<maxite->second<<std::endl;

    return 0;
}